Transmit processing using receiver functions

ABSTRACT

A method and apparatus for transmitting data in code division multiple access communications. The method includes processing spread first data with a channel response matrix using an equalization circuit to pre-equalize the spread data to compensate for a channel response prior to transmission. The pre-equalized data is received and recovered by a receiver. Second data, transmitted from the receiver, is received and recovered using the equalization circuit to equalize the second data to compensate for a channel response that the first data encountered.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 10/335,347 filed on Dec. 31, 2002,which claims the benefit of U.S. Provisional Application No. 60/396,490 filed on Jul. 17, 2002,and U.S. Provisional Application No. 60/368,639 filed on Mar. 28, 2002,which are incorporated by reference as if fully set forth.

FIELD OF INVENTION

The application is related to wireless communications.

BACKGROUND

In code division multiple access (CDMA) communication systems, multiple communications may be simultaneously sent over a shared frequency spectrum. Each communication is distinguished by the code used to transmit the communication.

In some CDMA communication systems, to better utilize the shared spectrum, the spectrum is time divided into frames having a predetermined number of time slots, such as fifteen time slots. This type of system is referred to as a hybrid CDMA/time division multiple access (TDMA) communication system. One such system, which restricts uplink communications and downlink communications to particular time slots, is a time division duplex communication (TDD) system.

One approach to receive the multiple communications transmitted within the shared spectrum is joint detection. In joint detection, the data from the multiple communications is determined together. In the following description a capitalized symbol X represents a matrix, and the symbol {right arrow over (x)} represents a column vector. The joint detection is typically modeled per Equation 1: {right arrow over (r)}=A{right arrow over (d)}+{right arrow over (n)};  Equation 1 The received signal vector {right arrow over (r)} is a function of the system transmission matrix A, the transmittal data vector {right arrow over (d)}, and the noise vector {right arrow over (n)}. The system transmission matrix A contains the contributions of individual users as per Equation 2: A=└A ⁽¹⁾ , A ⁽²⁾ , . . . ,A ^((K))┘;   Equation 2 where A^((k)) represents the contribution of user k to the system transmission matrix A. Each user system transmission matrix is a function of the channel impulse response and the spreading code of that user per Equation 3: A ^((k)) =H ^((k)) C ^((k));   Equation 3 Where H^((k)) is the channel response matrix and C^((k)) is the code matrix for user k.

A Minimum Mean Square Error (MMSE) estimate for the data vector

is obtained from Equation 4:

$\begin{matrix} {{\overset{\hat{->}}{d} = {\left( {A^{H}R_{n}^{- 1}A} \right)^{- 1}A^{H}R_{n}^{- 1}\overset{->}{r}}};} & {{Equation}\mspace{14mu} 4} \end{matrix}$ where R_(n) is the covariance matrix of the noise. When the noise is white, R_(n) is a diagonal matrix and the MMSE estimate for the data is per Equations 5A and 5B:

$\begin{matrix} {{\overset{\hat{->}}{d} = {\left( {{A^{H}A} + {\sigma^{2}I}} \right)^{- 1}A^{H}\overset{->}{r}}};} & {{Equation}\mspace{14mu} 5A} \end{matrix}$ which may alternatively be written as:

$\begin{matrix} {{\overset{\hat{->}}{d} = {{A^{H}\left( {{AA}^{H} + {\sigma^{2}I}} \right)}^{- 1}\overset{->}{r}}};} & {{Equation}\mspace{14mu} 5B} \end{matrix}$ Equations 5A and 5B are interchangeable using matrix inversion lemma.

Similarly, a zero forcing (ZF) estimate is obtained from Equations 6A and 6B:

$\begin{matrix} {{\overset{\hat{->}}{d} = {\left( {A^{H}A} \right)^{- 1}A^{H}\overset{->}{r}}};} & {{Equation}\mspace{14mu} 6\; A} \end{matrix}$ which may also be written as:

$\begin{matrix} {{\overset{\hat{->}}{d} = {{A^{H}\left( {AA}^{H} \right)}^{- 1}\overset{->}{r}}};} & {{Equation}\mspace{14mu} 6\; B} \end{matrix}$

Equations 6A and 6B are interchangeable using matrix inversion lemma.

In a CDMA system, when all codes go through the same propagation channel, as in the case of a typical downlink transmission or when one uplink user monopolizes a time slot (H^((k))=H) the transmitted vector of spread symbols {right arrow over (s)} are obtained from Equation 7:

$\begin{matrix} {{\overset{->}{s} = {{C\overset{->}{d}} = {\sum\limits_{k = 1}^{K}\;{C^{(k)}{\overset{->}{d}}^{(k)}}}}};} & {{Equation}\mspace{14mu} 7} \end{matrix}$ The received signal is modeled using Equation 8: {right arrow over (r)}=H{right arrow over (s)}+{right arrow over (n)};   Equation 8

The MMSE estimate for the spread symbols {right arrow over (s)} is obtained as shown in Equations 9A and 9B:

$\begin{matrix} {{\overset{\hat{->}}{s} = {\left( {{H^{H}H} + {\sigma^{2}I}} \right)^{- 1}H^{H}\overset{->}{r}}};} & {{Equation}\mspace{14mu} 9A} \end{matrix}$ or equivalently:

$\begin{matrix} {\overset{\hat{->}}{s} = {{H^{H}\left( {{HH}^{H} + {\sigma^{2}I}} \right)}^{- 1}\overset{->}{r}}} & {{Equation}\mspace{14mu} 9\; B} \end{matrix}$

Equations 9A and 9B are interchangeable using matrix inversion lemma. The ZF estimate, (derived from Equation 6) for {right arrow over (ŝ)} is obtained by Equations 10A and 10B:

$\begin{matrix} {{\overset{\hat{->}}{s} = {\left( {H^{H}H} \right)^{- 1}H^{H}\overset{->}{r}}};} & {{Equation}\mspace{14mu} 10\; A} \end{matrix}$ or equivalently:

$\begin{matrix} {{\overset{\hat{->}}{s} = {{H^{H}\left( {HH}^{H} \right)}^{- 1}\overset{->}{r}}};} & {{Equation}\mspace{14mu} 10\; B} \end{matrix}$

Equations 10A and 10B are interchangeable using matrix inversion lemma. The estimate of the spread symbols

can be followed by a code Matched Filter (MF) to recover the data symbols.

When multiple antennas are used at the receiver, the received vector may also be represented by Equation 1. The definition of the vectors and matrix involved are modified to represent the contributions from different antennas as per Equation 11:

$\begin{matrix} {{\begin{bmatrix} {\overset{->}{r}}_{1} \\ \vdots \\ {\overset{->}{r}}_{N} \end{bmatrix} = {{\begin{bmatrix} A_{1} \\ \vdots \\ A_{N} \end{bmatrix}\overset{->}{d}} + \begin{bmatrix} {\overset{->}{n}}_{1} \\ \vdots \\ {\overset{->}{n}}_{N} \end{bmatrix}}};} & {{Equation}\mspace{14mu} 11} \end{matrix}$ where {right arrow over (r)}_(i), A_(i), and {right arrow over (n)}_(i) are the terms associated with receive antenna element i. A_(i) is constructed for each antenna with a different channel response per Equation 3 and A has components associated with each of K users per Equation 12: A=[A ⁽¹⁾ , A ⁽²⁾ , . . . , A ^((K))];   Equation 12

When multiple transmit antenna elements, such as M transmit elements, are used at the transmitter, the received vector {right arrow over (r)}_(i) is also per Equation 1. The appropriate definition of the vectors and matrix involved is represented in Equation 13:

$\begin{matrix} {{\overset{->}{r} = {{\left\lbrack {A_{1}^{\prime}\mspace{14mu}\ldots\mspace{14mu} A_{M}^{\prime}} \right\rbrack\begin{bmatrix} {\overset{->}{d}}_{1} \\ \vdots \\ {\overset{->}{d}}_{M} \end{bmatrix}} + \overset{->}{n}}};} & {{Equation}\mspace{14mu} 13} \end{matrix}$ where {right arrow over (r)} is the composite received signal, and A′_(m), m=1,2, . . . ,M is the system transmission matrix for signal transmission from the m^(th) transmit element to the receiver, {right arrow over (d)}_(m), m=1, 2 . . . M is the data vector transmitted from transmit antenna m.

The components of A due to an i^(th) antenna element is denoted as A_(i)′. Each A_(i)′ component has contributions from all K users per Equation 14: A′=[A′ ⁽¹⁾ , A′ ⁽²⁾ , . . . , A′ ^((K))];   Equation 14 The contribution of each user to each antenna element is a function of the channel impulse response and the spreading (derived from Equation 3) codes as shown in Equation 15: A′ ^((k)) =H′ ^((k)) C ^((k));   Equation 15

Multiple antennas at both the transmitter and the receiver are referred to as a Multiple Input Multiple Output (MIMO) system. The received signal for a MIMO system may be represented by Equation 11 rewritten as Equation 16.

$\begin{matrix} {{\begin{bmatrix} {\overset{->}{r}}_{1} \\ \vdots \\ {\overset{->}{r}}_{N} \end{bmatrix} = {{{\begin{bmatrix} A_{1} \\ \vdots \\ A_{N} \end{bmatrix}\left\lbrack {A_{1}^{\prime}\mspace{14mu}\ldots\mspace{14mu} A_{M}^{\prime}} \right\rbrack}\begin{bmatrix} {\overset{->}{d}}_{1} \\ \vdots \\ {\overset{->}{d}}_{M} \end{bmatrix}} + \begin{bmatrix} {\overset{->}{n}}_{1} \\ \vdots \\ {\overset{->}{n}}_{N} \end{bmatrix}}};} & {{Equation}\mspace{14mu} 16} \end{matrix}$ Where N is the number of receive antennas; M is the number of transmit antennas; A_(n), n=1,2, . . . ,N is the transmission matrix for reception; and A′_(m), m=1, 2, . . . ,M is the transmission matrix for transmission. With appropriate definitions of vectors and matrices involved, Equation 16 is rewritten as Equation 17: {right arrow over (r)}=Λ{right arrow over (d)}+{right arrow over (n)};   Equation 17 where Λ is the composite system transmission matrix for both transmission and reception. The MMSE estimate for the data vector shown in Equation 5 is represented by Equations 18A and 18B:

$\begin{matrix} {{\overset{\hat{->}}{d} = {\left( {{\Lambda^{H}\Lambda} + {\sigma^{2}I}} \right)^{- 1}\Lambda^{H}\overset{->}{r}}};} & {{Equation}\mspace{14mu} 18\; A} \end{matrix}$ or equivalently

$\begin{matrix} {\overset{\hat{->}}{d} = {{\Lambda^{H}\left( {{\Lambda\;\Lambda^{H}} + {\sigma^{2}I}} \right)}^{- 1}\overset{->}{r}}} & {{Equation}\mspace{14mu} 18\; B} \end{matrix}$ Equations 18A and 18B are interchangeable using matrix inversion lemma. The ZF estimate can be obtained from Equations 19A and 19B:

$\begin{matrix} {{\overset{\hat{->}}{d} = {\left( {\Lambda^{H}\Lambda} \right)^{- 1}\Lambda^{H}\overset{->}{r}}};} & {{Equation}\mspace{14mu} 19\; A} \end{matrix}$ or equivalently:

$\begin{matrix} {{\overset{\hat{->}}{d} = {{\Lambda^{H}\left( {\Lambda\;\Lambda^{H}} \right)}^{- 1}\overset{->}{r}}};} & {{Equation}\mspace{14mu} 19\; B} \end{matrix}$ Equations 19A and 19B are interchangeable using matrix inversion lemma.

A receiver implementing these approaches effectively performs a matrix inversion, which has a high complexity. To reduce the complexity, an approximate Cholesky decomposition or fast Fourier transforms are used. Although these approaches reduce the receiver complexity, it is desirable to have alternate approaches to simplify the transmitting and receiving of data.

SUMMARY

A channel response is determined as a channel response matrix H approximating a wireless channel that the data will experience after transmission. The data to be transmitted is spread, and the spread data is processed with the channel response matrix H. The spread and processed data is then transmitted. The data is received and recovered from the transmitted spread and processed data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simplified diagram of a transmitter and receiver using transmit processing using receiver functions.

FIG. 2 is a flow chart of transmission using receiver functions.

DETAILED DESCRIPTION

A system is described herein in conjunction with a time division duplex (TDD) mode of a CDMA system, (such as the proposed TDD mode of the third generation partnership project (3GPP) wideband CDMA system). However, the following can be applied to any spread spectrum communication system, such as frequency division duplex (FDD) system or a time division synchronous code division multiple access (TD-SCDMA) system.

FIG. 1 is a diagram of a simplified transmitter 10 and receiver 12 for use in transmit processing using receiver functions. The transmitter 10 can be located at a base station, user equipment (UE) or both, and the receiver 12 can be located at a UE, base station or both. Data to be communicated from the transmitter 10 to the receiver 12 is input into a spreading and modulation device 14 and a pre-equalizer 15. The data can be for a single code transmission to a single receiver, for a multi-code transmission to a single receiver, single code transmissions to multiple receivers, multi-code transmissions to multiple receivers or a combination of single and multi-code transmissions to multiple receivers.

The data is spread using the appropriate code(s), pre-equalized to compensate for the anticipated channel responses of the wireless radio interface 18 and modulated, such as by using quadrature phase shift keying (QPSK), M-ary quadrature amplitude modulation (QAM) or other modulation schemes, and to upconvert to radio frequency. The radio frequency signal is radiated by an antenna or M element antenna array 16 ₁-16 _(M) through a wireless radio interface 18.

An antenna, or N element antenna array 20 ₁-20 _(N), at the receiver 12 receives the radiated signal with other signals and noise as a received vector {right arrow over (r)}. A data detector 22 processes the received vector to recover the data {right arrow over (d)}. The structure of the data detector 22 may be simplified over a typical joint detection receiver due to the pre-equalization at the transmitter 10, such as by being implemented by code matched filters.

The transmitter 10 effectively compensates for the channel distortion prior to transmission. As a result, the received vector {right arrow over (r)} is approximately the spread data vector {right arrow over (s)}.

The pre-equalization makes use of the channel and code information available at a receiver 12 to process the transmit vector appropriately so that when that signal is received at the receiver 12 it is already compensated for channel impairments. The channel information can be signaled from the receiver 12, may be derived from signals received at the transmitter 10 within the same frequency spectrum. To illustrate, for a base station of a TDD/CDMA communication system, the channel information may be gathered in an uplink time slot for a subsequent downlink transmission time slot.

When processing at the transmitter 10 is used, the received signal obtained from Equation 20A:

$\begin{matrix} {{\overset{->}{r} = {{\left\lbrack {A_{1}^{\prime}\mspace{14mu}\ldots\mspace{14mu} A_{M}^{\prime}} \right\rbrack\begin{bmatrix} {\overset{->}{d}}_{1} \\ \vdots \\ {\overset{->}{d}}_{M} \end{bmatrix}} + \overset{->}{n}}};} & {{Equation}\mspace{14mu} 20\; A} \end{matrix}$ In terms of the channel and code matrices, Equation 20A becomes Equation 20B:

$\begin{matrix} {\overset{->}{r} = {{{\left\lbrack {H_{1}^{\prime}\mspace{14mu}\ldots\mspace{14mu} H_{M}^{\prime}} \right\rbrack\begin{bmatrix} C_{1} & \; & \; \\ \; & \ddots & \; \\ \; & \; & C_{M} \end{bmatrix}}\begin{bmatrix} {\overset{->}{d}}_{1} \\ \vdots \\ {\overset{->}{d}}_{M} \end{bmatrix}} + \overset{->}{n}}} & {{Equation}\mspace{14mu} 20\; B} \end{matrix}$

The code matrix C₁ through C_(M) can differ based on the transmission scheme. One such scheme is space code transmit diversity (SCTD), where each antenna is assigned a different transmission code. In some transmit diversity schemes the same code matrix is used for each antenna. One such scheme is transmit adaptive antennas (TxAA). Although transmit processing using receiver functions is described in conjunction with each antenna transmitting the same code matrix C, it is also applicable to systems where the code matrix varies by antenna using an analogous approach.

In some systems, the transmit data bits {right arrow over (d)}₁ through {right arrow over (d)}_(M) can differ based on the transmission scheme, in particular whether transmit diversity is used. Although an analogous approach can be applied to systems having differing data vectors per antenna, the following is described in conjunction with each antenna transmitting the same data vector {right arrow over (d)}. For systems where the same data and code matrix is transmitted from each antenna, the system is modeled per Equation 21.

$\begin{matrix} \begin{matrix} {\overset{->}{r} = {{\left\lbrack {A_{1}^{\prime}\mspace{14mu}\ldots\mspace{14mu} A_{M}^{\prime}} \right\rbrack\begin{bmatrix} \overset{->}{d} \\ \vdots \\ \overset{->}{d} \end{bmatrix}} + \overset{->}{n}}} \\ {= {{{\left\lbrack {H_{1}^{\prime}\mspace{14mu}\ldots\mspace{14mu} H_{M}^{\prime}} \right\rbrack\begin{bmatrix} C & \; & \; \\ \; & \ddots & \; \\ \; & \; & C \end{bmatrix}}\begin{bmatrix} \overset{->}{d} \\ \vdots \\ \overset{->}{d} \end{bmatrix}} + \overset{->}{n}}} \\ {{= {{\left\lbrack {H_{1}^{\prime}\mspace{14mu}\ldots\mspace{14mu} H_{M}^{\prime}} \right\rbrack\begin{bmatrix} {C\overset{->}{d}} \\ \vdots \\ {C\overset{->}{d}} \end{bmatrix}} + \overset{->}{n}}};} \end{matrix} & {{Equation}\mspace{14mu} 21} \end{matrix}$ The transmit vector is shown by Equation 22:

$\begin{matrix} {\begin{bmatrix} {C\overset{->}{d}} \\ \vdots \\ {C\overset{->}{d}} \end{bmatrix};} & {{Equation}\mspace{14mu} 22} \end{matrix}$

The pseudo-inverse of H from the right is H^(H)(HH^(H))⁻¹. The data signal after processing is transmitted with this pseudo-inverse. Accordingly, the transmitted signal {right arrow over (t)}′ is shown by Equation 23: {right arrow over (t)}′=H ^(H)(HH^(H))⁻¹ C{right arrow over (d)};   Equation 23

The resulting received vector is shown in Equation 24:

$\begin{matrix} \begin{matrix} {\overset{->}{r} = {{{HH}^{H}\left( {HH}^{H} \right)}^{- 1}C\overset{->}{d}}} \\ {{= {C\overset{->}{d}}};} \end{matrix} & {{Equation}\mspace{14mu} 24} \end{matrix}$

If the pre-equalization is ideal, a clean signal is received 12 at the receiver without any need for further processing. However, in practice due to noise and variations in the channel conditions, typically some degradation to the received signal occurs. However, the required processing to remove degradation is greatly decreased, further increasing the required complexity of the receiver 12.

One of the advantages of a MMSE or ZF type receiver is that MMSE or ZF circuits are commonly at the transmitter 10 site. To illustrate, a base station typically has an MMSE type receiver. Accordingly, a single MMSE circuit can be used for processing the received and transmitted data at the base station. As a result, the circuitry for a receiver 12 and a transmitter 10 implementing transmit processing using receiver functions can be consolidated into either the UE or the base station, with the other communicating unit having simplified circuitry.

For example, the base station may use the pre-equalization transmitter 10 and a MMSE receiver. The matrix or effective matrix inversion can be performed by the same circuit. As a result, the receiver circuitry at the UE can be simplified, such as a single or group of code matched filters. The simplified receiver circuitry also extends the battery life at the receiver 12.

The common used circuitry is not limited to MMSE or ZF receiver circuitry, but it is rather general in that any receiver 12 structure that is capable of performing matrix operations and calculating matrix inverse is suited to do processing at the transmitter 10. Another advantage of the pre-equalization is that the transmitted signal is focused on the receiver 12. For downlink signals in particular, the interference to other users is reduced.

Referring to FIG. 2, a method 30 is shown. The method commences with obtaining wireless channel information, which may be in the form of a channel impulse response H (step 32). The data for transmission is then pre-equalized using the channel impulse response H (step 34). The pre-equalized data is transmitted across the wireless radio interface (step 36) and is received as a received vector (step 38) at the receiver. The data is then recovered from the received vector, such as by using code matched filters (step 40). 

What is claimed is:
 1. A transmitter comprising: a spreading and modulation device configured to spread data using multiple codes; and a pre-equalizer configured to process the spread data with a channel response matrix to pre-equalize the spread data to compensate for a channel response prior to transmission, to receive channel and code information used by the pre-equalizer to equalize the spread data to compensate for channel impairments that the spread data will encounter upon transmission and to transmit the equalized spread data; wherein the pre-equalizer is configured to multiply the spread data by H^(H)(HH^(H)+σ²I)⁻¹, where H is the channel response matrix, σ² is a noise variance, and I is an identity matrix.
 2. The transmitter of claim 1 wherein the channel and code information is gathered in an uplink time slot for a subsequent downlink transmission slot.
 3. A method of transmitting data in code division multiple access communications, the method comprising: spreading data using multiple codes; receiving channel and code information; processing the spread data with a channel response matrix to pre-equalize the spread data to compensate for a channel response prior to transmission, wherein the spread data is equalized to compensate for channel impairments that the spread data will encounter upon transmission, wherein the spread data is multiplied by H^(H)(HH^(H)+σ²I)⁻¹, where H is the channel response matrix, σ² is a noise variance, and I is an identity matrix; and transmitting the equalized spread data.
 4. The method of claim 3 wherein the channel and code information is gathered in an uplink time slot for a subsequent downlink transmission slot.
 5. Apparatus for performing code division multiple access communications, the apparatus comprising: a receiver configured to transmit channel and code information; and a transmitter configured to spread data using multiple codes, process the spread data with a channel response matrix to pre-equalize the spread data to compensate for a channel response prior to transmission, to receive and use the channel and code information to equalize the spread data to compensate for channel impairments that the spread data will encounter upon transmission, and to transmit the equalized spread data to the receiver; wherein the spread data is multiplied by H^(H)(HH^(H)+σ²I)⁻¹, where H is the channel response matrix, σ² is a noise variance, and I is an identity matrix.
 6. The apparatus of claim 5 wherein the channel and code information is gathered in an uplink time slot for a subsequent downlink transmission slot. 